import {defineConfig, ConfigEnv, loadEnv} from 'vite'
import vue from '@vitejs/plugin-vue'
import commonjs from 'rollup-plugin-commonjs';
import externalGlobals from 'rollup-plugin-external-globals';
import Components from 'unplugin-vue-components/vite'
import {AntDesignVueResolver} from 'unplugin-vue-components/resolvers'
import path from 'path'
// https://vitejs.dev/config/
export default defineConfig((mode: ConfigEnv) => {
    const globals = mode.mode === 'production' ? externalGlobals({
        // vue: "Vue",
        // "ant-design-vue": "antd"
    }) : {}
    const env = loadEnv(mode.mode, process.cwd());
    const plugins = mode.mode === 'production' ? [] : [commonjs(), globals]
    return {
        base: env.VITE_BASE_PATH,
        esbuild: {
            charset: 'ascii',
        },
        server: {
            host: '0.0.0.0',
            port: 5174,
            proxy: {
                '/gate/nd': {
                    target: 'http://localhost:6889',
                    changeOrigin: true
                },
            },
        },
        resolve: {
            alias: {
                'vue': 'vue/dist/vue.esm-bundler.js', // 定义vue的别名，如果使用其他的插件，可能会用到别名
                '@': path.resolve(__dirname, './src')
            },
            extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json"]
        },
        plugins: [
            vue(),
            // vueJsx(),
            Components({
                resolvers: [
                    AntDesignVueResolver({
                        importStyle: 'less', // 一定要开启这个配置项
                    })
                ],
            }),
            ...plugins,
        ],
        build: {
            minify: 'esbuild',
            cssMinify: true,
            target: 'es2015',
            assetsDir: './public',
            rollupOptions: {
                // external: ['vue', 'ant-design-vue'],
                // external: [`${env.VITE_BASE_PATH}lib/sdk/wonders-form.umd.js`,`${env.VITE_BASE_PATH}lib/sdk/init.js`],
                plugins: [
                    commonjs(),
                    globals
                ]
            },
        },
        css: {
            preprocessorOptions: {
                less: {
                    modifyVars: { // 在这里自定义主题色等样式
                        'primary-color': '#1890ff', // 全局主色
                        'link-color': '#1890ff', // 链接色
                        'success-color': '#52c41a', // 成功色
                        'warning-color': '#faad14', // 警告色
                        'error-color': '#f10f0f', // 错误色
                        'font-size-base': '14px', // 主字号
                        'heading-color': '#34414F', // 标题色
                        'text-color': '#34414F', // 主文本色
                        'text-color-secondary': '#ABACAE', // 次文本色
                        'disabled-color': '#A1A1A1', // 失效色
                        'border-radius-base': '3px',// 组件/浮层圆角
                        'border-color-base': '#E2E2E6', // 边框色
                        'box-shadow-base': '0 4px 9px rgba(0, 0, 0, 0.12)', // 浮层阴影
                        'component-background': '#ffffff',
                        'disabled-bg': '#EAEAEA',
                        'divider-color': '#E2E2E6',
                        'border-color-split': '#E2E2E6',
                        '@ant-prefix': 'cp',
                    },
                    javascriptEnabled: true
                },
                // scss: {
                //     additionalData: `@import './src/wioc/assets/styles/themes/themes.scss';`
                // }
            },
        },
    }
})
